package com.pactera.madp.cp.handler.sync.impl;

import cn.hutool.core.util.StrUtil;
import com.pactera.madp.common.core.util.SpringContextHolder;
import com.pactera.madp.cp.api.dto.sync.SyncDTO;
import com.pactera.madp.cp.common.annotations.SyncType;
import com.pactera.madp.cp.common.enums.sync.SaSyncEnum;
import com.pactera.madp.cp.common.enums.sync.SyncTypeEnum;
import com.pactera.madp.cp.handler.sync.SyncTypeHandler;
import com.pactera.madp.cp.service.sync.SyncSaDayTimeService;
import com.pactera.madp.cp.service.sync.SyncSaEndDayService;
import org.springframework.stereotype.Component;

/**
 * @title 神策-同步批量
 *
 *  一、日间批量
 *   - ① 处理同步参数(上一次同步时间最大接收时间)
 *   - ② 同步神策采集明细数据
 *   - ③ 汇总当日访客浏览数据
 *   - ④ 处理客户雷达数据
 *
 *  二、日终批量
 *  - ① 处理同步参数(数据日期)
 *  - ② 汇总数据日期数据到数据看板历史表
 *  - ③ 清空数据看板数据
 *  - ④ 汇总数据看板数据
 *  - ⑤ 汇总产品偏好数据
 *  - ⑥ 删除数据日期一周前营销线索数据
 *  - ⑦ 汇总昨日营销线索数据
 *  - ⑧ 删除数据日期一周前雷达数据
 *
 * @date 2022-05-14
 * @author Deming.Chang
 */
@Component
@SyncType(SyncTypeEnum.SA)
public class SaSyncHandler implements SyncTypeHandler {
    @Override
    public Boolean handler(SyncDTO dto) {
        if(StrUtil.equals(SaSyncEnum.SA_DAY_TIME.getType(), dto.getSubType())){
            SpringContextHolder.getBean(SyncSaDayTimeService.class).handler(dto);
            return Boolean.TRUE;
        }
        if(StrUtil.equals(SaSyncEnum.SA_END_DAY.getType(), dto.getSubType())){
            SpringContextHolder.getBean(SyncSaEndDayService.class).handler(dto);
            return Boolean.TRUE;
        }
        return Boolean.FALSE;
    }
}
